package helexis.game.tyrian.domain;

import java.util.Locale;

import helexis.game.tyrian.utils.TextUtils;

/**
 * 쉴드 아이템
 * 
 * @author 조만희
 *
 */
public enum Shield implements Item {
	
	
    SIF("Structural Field", 100, 1),
    AIF("Advanced Field", 250, 2),
    GLES("Gencore LE Shield", 500, 3),
    GHEF("Gencore HE Shield", 1000, 4),
    MLXS("MicroCorp LXS-A", 2000, 5);
    
	
	/**
	 * 쉴드 아이템 이름
	 */
	private final String name;
	/**
	 * 쉴드 아이템 가격
	 */
	private final int price;
	/**
	 * 쉴드 아이템 방어력
	 */
	private final int armor;
	
	
	private Shield(String name, int price, int armor) {
		this.name = name;
		this.price = price;
		this.armor = armor;
	}
	
	
	public String getName() {
		return this.name;
	}//end of getName()
	
	
	@Override
	public int getPrice() {
		return this.price;
	}//end of getPrice()
	
	
	@Override
	public String getPriceAsText() {
		return TextUtils.creditStyle(this.price);
	}//end of getPriceAsText()
	
	
	/**
	 * 이 쉴드의 방어력 레벨을 리턴합니다. (1~5)
	 * 
	 * 1은 10%의 데미지를 덜 받는 것을 의미합니다.
	 * 
	 * @return 방어력
	 */
	public int getArmor() {
		return this.armor;
	}//end of getArmor()
	
	
	@Override
	public String toString() {
		return String.format(Locale.KOREA, "%s (%s) - Armor: %d", this.name, this.getPriceAsText(), this.armor);
	}//end of toString()
	

}
//end of Shield.java